The present invention relates to network data packet management, and more specifically to memory management of high performance devices that receive network data packets and store the packets in DMA mapped buffers.
DMA memory buffers are direct memory access buffers that are accessed by the device, for example, by the network protocol, instead of the CPU. DMA memory buffers are limited and predetermined, in some instances by the device driver or network protocol. Once data packets are stored in DMA memory, the DMA memory can not be reused to receive newer incoming data packets. Lack of available DMA memory available to receive incoming data packets may lead to data packets being dropped. Dropped data packets can result in retransmissions of incoming data packets which may cause congestion in the network. Copying contents of DMA memory to non-DMA memory will make DMA memory available to receive incoming data packets. The overhead of copying memory is expensive and may slow down transfer rates between communicating applications.